package com.h3c.nem.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: TbFlowInstDTO
 *
 * @Author: l22886
 * @Date: 2022-01-19
 * Description: tb_flow_inst dto实体
 * Version: 1.0
 */
@ApiModel(value="TbFlowInst对象", description="")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TbFlowInstDTO {


    @ApiModelProperty(value = "流程实例ID")
    private String flowId;

    @ApiModelProperty(value = "审批流程编号:N1 月度承诺填写审核流程；N2 月度考核流程；N3 转正计划填写审核流程；N4 转正考核评价流程； N5 小任务流程；")
    private String flowCode;

    @ApiModelProperty(value = "审批流程名称")
    private String flowName;

    @ApiModelProperty(value = "员工工号（新员工或导师）")
    private String workerId;

    @ApiModelProperty(value = "员工姓名")
    private String workerName;

    @ApiModelProperty(value = "员工所属部门")
    private Integer workerDeptId;

    @ApiModelProperty(value = "流程状态：11 填写月度工作承诺；12 月度承诺审核；13 月度考核评价；21 填写转正计划；22 转正计划审核;23 转正考核评价；31 执行小任务；32 审核小任务；99 已完成；")
    private Integer flowStatus;

    @ApiModelProperty(value = "当前环节名称")
    private String currentStage;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date createTime;

    @ApiModelProperty(value = "当前环节到达时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date arriveTime;

    @ApiModelProperty(value = "完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date finishTime;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone="Asia/Shanghai")
    private Date createTimeFormat;

    @ApiModelProperty(value = "当前环节到达时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone="Asia/Shanghai")
    private Date arriveTimeFormat;

    @ApiModelProperty(value = "完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone="Asia/Shanghai")
    private Date finishTimeFormat;

    @ApiModelProperty(value = "当前处理人工号")
    private String approvalUserIds;

    @ApiModelProperty(value = "当前处理人工号")
    private String approvalUserNames;

    @ApiModelProperty(value = "历史处理人工号")
    private String approvedUserIds;

    @ApiModelProperty(value = "流程说明（预留）")
    private String flowNote;

    @ApiModelProperty(value = "小任务名称")
    private String taskName;

    @ApiModelProperty(value = "转办人工号")
    private String approvalUserIdsTransfer;

    @ApiModelProperty(value = "所有考核人的名称")
    private String allApprovalNames;

    @ApiModelProperty(value = "流程控制到目标考核人")
    private String approvalName;

    @ApiModelProperty(value = "已审批人是否重新处理")
    private Integer reApprovalFlag;

    @ApiModelProperty(value = "达到天数")
    private Integer arriveDays;

    @ApiModelProperty(value = "达到总天数")
    private Integer totalDays;

    @ApiModelProperty(value = "是否超期")
    private Boolean isOverdue;

    /**
     * 排序字段 + 升序， -降序
     * 比如 +updateTime 根据 修改时间升序排序，-updateTime 根据 修改时间降序排序
     */
    private String orderBy;

    @ApiModelProperty(value = "任务说明")
    private String taskFinishNote;

    @ApiModelProperty(value = "任务说明提交类型，0：草稿 1：正式提交")
    private String type;

    @ApiModelProperty(value = "统一审批意见")
    private String opinion;

    private Integer isResign;

    private Boolean jobLevel;

}
